	import dayjs from '@/utils/dayjs.main.js'

	export const getWeekOfYear =  function (date) {
	  const target = dayjs.isDayjs(date) ? date : dayjs(date);
	
	  // 获取当前 locale 的 yearStart（默认为 1，即每年第一个 weekStart 的日期）
	  const yearStart = target.$locale().yearStart || 1;
	
	  // 当前是 12 月且日期 > 25，可能属于下一年的第一周
	  if (target.month() === 11 && target.date() > 25) {
	    // 下一年的 1 月 1 日开始，设置 date 为 yearStart 日
	    const nextYearFirst = target.startOf('year').add(1, 'year').date(yearStart);
	    // 当前周的结束（周日 23:59:59.999）
	    const endOfCurrentWeek = target.endOf('week');
	
	    // 如果 nextYearFirst 在当前周之前（即当前周已进入下一年的第一周）
	    if (nextYearFirst.isBefore(endOfCurrentWeek)) {
	      return 1;
	    }
	  }
	
	  // 计算当年的第一周的起始点（即：1月的yearStart日所在的那一周的开始）
	  const firstWeekStart = target
	    .startOf('year')           // 当年第一天（1月1日）
	    .date(yearStart)           // 设置为 yearStart 日（如 1 号或 4 号）
	    .startOf('week')           // 所在周的开始（周日或周一）
	    .subtract(1, 'millisecond');// 减1毫秒，作为“前一周的结束”
	
	  // 计算从 firstWeekStart 到目标日期的周数（带小数）
	  const diffInWeeks = target.diff(firstWeekStart, 'week', true);
	
	  // 如果为负数，说明当前周实际上属于上一年的最后一周
	  if (diffInWeeks < 0) {
	    // 递归计算上一周的 week 值
	    return getWeekOfYear(target.startOf('week'));
	  }
	
	  // 向上取整得到周数
	  return Math.ceil(diffInWeeks);
	}